
package com.intretech.umsin.system.vo;

import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.intretech.umsin.common.entity.Assignment;
import com.intretech.umsin.common.excel.converter.LocalDateTimeConverter;

/**
* @version V1.0
* 部门/组织/机构管理:sys_dept 对应的VO模型类.
* @ClassName: SysDeptVo
* @Description: 部门/组织/机构管理:sys_dept 对应的VO模型类.
* @author: 李启联
* @date:   2022-8-16 16:25:06
* @Copyright: Copyright (c) 2022
*/
@ApiModel("部门/组织/机构管理")
@ExcelIgnoreUnannotated
public class SysDeptVo implements Assignment, Serializable {

    // ID
    @ApiModelProperty(value = "ID" ,dataType="bigint(19)" ,required= true)
    @ExcelProperty(value = "ID")
    private Long id;

    // 部门/组织代码
    @ApiModelProperty(value = "部门/组织代码" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "部门/组织代码")
    private String code;

    // 部门/组织名称
    @ApiModelProperty(value = "部门/组织名称" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "部门/组织名称")
    private String name;

    // 上级id，一级为null
    @ApiModelProperty(value = "上级id，一级为null" ,dataType="bigint(19)" ,required= false)
    @ExcelProperty(value = "上级id，一级为null")
    private Long parentId;

    // 排序
    @ApiModelProperty(value = "排序" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "排序")
    private Integer orderNum;

    // 是否删除  1：已删除  0：正常
    @ApiModelProperty(value = "是否删除  1：已删除  0：正常" ,dataType="bit(1)" ,required= false)
    @ExcelProperty(value = "是否删除  1：已删除  0：正常")
    private Boolean ifDel;

    // 部门/组织路径
    @ApiModelProperty(value = "部门/组织路径" ,dataType="varchar(500)" ,required= false)
    @ExcelProperty(value = "部门/组织路径")
    private String path;

    // 组织类型
    @ApiModelProperty(value = "组织类型" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "组织类型")
    private String type;

    // 版本号
    @ApiModelProperty(value = "版本号" ,dataType="int(10)" ,required= false)
    @ExcelProperty(value = "版本号")
    private Integer version;

    // 租户ID
    @ApiModelProperty(value = "租户ID" ,dataType="varchar(128)" ,required= false)
    @ExcelProperty(value = "租户ID")
    private String tenantId;

    // 创建人
    @ApiModelProperty(value = "创建人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "创建人")
    private String creator;

    // 修改人
    @ApiModelProperty(value = "修改人" ,dataType="varchar(64)" ,required= false)
    @ExcelProperty(value = "修改人")
    private String modifier;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "创建时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间" ,dataType="datetime()" ,required= false)
    @ExcelProperty(value = "修改时间",converter = LocalDateTimeConverter.class)
    private java.time.LocalDateTime modifyTime;

    public Long getId(){
    return this.id;
    }

    public void setId(Long id){
    this.id = id;
    }
    public String getCode(){
    return this.code;
    }

    public void setCode(String code){
    this.code = code;
    }
    public String getName(){
    return this.name;
    }

    public void setName(String name){
    this.name = name;
    }
    public Long getParentId(){
    return this.parentId;
    }

    public void setParentId(Long parentId){
    this.parentId = parentId;
    }
    public Integer getOrderNum(){
    return this.orderNum;
    }

    public void setOrderNum(Integer orderNum){
    this.orderNum = orderNum;
    }
    public Boolean getIfDel(){
    return this.ifDel;
    }

    public void setIfDel(Boolean ifDel){
    this.ifDel = ifDel;
    }
    public String getPath(){
    return this.path;
    }

    public void setPath(String path){
    this.path = path;
    }
    public String getType(){
    return this.type;
    }

    public void setType(String type){
    this.type = type;
    }
    public Integer getVersion(){
    return this.version;
    }

    public void setVersion(Integer version){
    this.version = version;
    }
    public String getTenantId(){
    return this.tenantId;
    }

    public void setTenantId(String tenantId){
    this.tenantId = tenantId;
    }
    public String getCreator(){
    return this.creator;
    }

    public void setCreator(String creator){
    this.creator = creator;
    }
    public String getModifier(){
    return this.modifier;
    }

    public void setModifier(String modifier){
    this.modifier = modifier;
    }
    public java.time.LocalDateTime getCreateTime(){
    return this.createTime;
    }

    public void setCreateTime(java.time.LocalDateTime createTime){
    this.createTime = createTime;
    }
    public java.time.LocalDateTime getModifyTime(){
    return this.modifyTime;
    }

    public void setModifyTime(java.time.LocalDateTime modifyTime){
    this.modifyTime = modifyTime;
    }

    public SysDeptVo(){
    }

    @Override
    public String toString(){
        return " SysDeptVo ["
             +" id = " +id +" ,"
             +" code = " +code +" ,"
             +" name = " +name +" ,"
             +" parentId = " +parentId +" ,"
             +" orderNum = " +orderNum +" ,"
             +" ifDel = " +ifDel +" ,"
             +" path = " +path +" ,"
             +" type = " +type +" ,"
             +" version = " +version +" ,"
             +" tenantId = " +tenantId +" ,"
             +" creator = " +creator +" ,"
             +" modifier = " +modifier +" ,"
             +" createTime = " +createTime +" ,"
             +" modifyTime = " +modifyTime
        +" ]";
    }

}